<?php
/**
 * Отображение даты в текущем часовом поясе пользователя.
 */
class Workset_View_Helper_ClientDateTime extends ZendX_JQuery_View_Helper_UiWidget {
	/**
	 * @var integer
	 */
	protected $_iUnixTimestamp = 0;

	/**
	 * @var string
	 */
	protected $_sDateTimeFormat = '';

	/**
	 * Инициализация helper'a.
	 *
	 * @return Workset_View_Helper_ClientDateTime
	 */
	public function ClientDateTime($iUnixTimestamp = 0,$sFormat = '') {
		$this->setTimeStamp($iUnixTimestamp);
		$this->setFormat($sFormat);
		return $this;
	}

	/**
	 * Задание времени, которое необходимол отобразить.
	 *
	 * @param integer $iUnixTimestamp
	 * @return Workset_View_Helper_ClientDateTime
	 */
	public function setTimeStamp($iUnixTimestamp) {
		$this->_iUnixTimestamp = $iUnixTimestamp;
		return $this;
	}

	/**
	 * Задание строки формата отображения времени.
	 *
	 * @param string $sFormat
	 * @return Workset_View_Helper_ClientDateTime
	 */
	public function setFormat($sFormat) {
		$this->_sDateTimeFormat = $sFormat;
		return $this;
	}

	/**
	 * (non-PHPdoc)
	 * @see library/Zend/View/Helper/Zend_View_Helper_Abstract#direct()
	 */
	public function direct() {
		return $this->__toString();
	}

	/**
	 * Отображение в виде строки.
	 *
	 * @return string
	 */
	function __toString() {
		$sId = 'dt'.str_pad(dechex(crc32((string)microtime())),8,'0',STR_PAD_LEFT);
		$gsTime = gmdate($sFormat = $this->_sDateTimeFormat, $iTime = $this->_iUnixTimestamp).'&#160;GMT';
		$sHtml = "<span id=\"$sId\">$gsTime</span>";

        $sScript = "if (typeof showUserDate == 'function') \$('#$sId').html(showUserDate('$sFormat',$iTime))";

		if (Zend_Controller_Front::getInstance()->getRequest()->isXmlHttpRequest()) {
			Workset_Ajax::addCommand($sScript);
		}
		else {
            $this->jquery->addOnLoad($sScript);
			/*$sHtml .= '<script type="text/javascript"><!--'
				."\n\$(document).ready(function() {"
				.$sScript
				."});\n"
				.'//--></script>';*/
		}

		return $sHtml;
	}
}
?>